StatementSe utiliza para enviar instrucciones SQL simples a la base de datos. Sin embargo, este tipo de statement no tiene protección contra inyección SQL.
PrepareStatementUn PreparedStatement es una extensión una subclase de Statement que proporciona soporte para consultas parametrizadas. Estas consultas tienen marcadores de posición para los valores que se deben proporcionar antes de la ejecución de la consulta. Esto permite la precompilación de la consulta, lo que puede mejorar el rendimiento cuando la misma consulta se ejecuta varias veces con diferentes valores de parámetros.
CreateConnectionEsto no es un término estándar en JDBC. Sin embargo, podría referirse al proceso de crear una conexión a una base de datos. En JDBC, esto se hace típicamente utilizando un DriverManager para obtener una conexión (Connection), proporcionando una URL de conexión, un nombre de usuario y una contraseña.
DriverManagerDriverManager es una clase en JDBC que maneja el establecimiento de conexiones entre una aplicación Java y una base de datos. Es responsable de cargar los drivers de JDBC y de establecer conexiones a las bases de datos basándose en las URLs y las credenciales proporcionadas.
GetConnectiongetConnection es un método de la clase DriverManager en JDBC. Se utiliza para establecer una conexión con la base de datos. Toma parámetros como URL de la base de datos, nombre de usuario y contraseña, y devuelve un objeto Connection que representa la conexión establecida.
AutoCommitEn JDBC, el autoCommit es una característica de la conexión que determina si cada operación se compromete automáticamente justo después de su ejecución.
Si el autoCommit está habilitado (que es el valor predeterminado), cada instrucción se trata como una transacción individual y se compromete inmediatamente.
Si se desactiva el autoCommit, las transacciones deben ser gestionadas manualmente, usualmente comprometiéndolas (commit) o deshaciéndolas (rollback) explícitamente.
RollbackUn rollback en JDBC se utiliza para deshacer todas las operaciones realizadas en la base de datos desde el último commit. Se utiliza en situaciones donde algo ha ido mal en una serie de operaciones y se necesita volver al estado anterior de la base de datos. Esto es crucial en la gestión de transacciones para mantener la integridad de los datos.
Sí, para el tema de las búsquedas, en el body van las condiciones.
http se crea un nuevo índice?PUT
DELETE
POST, se manda la información en el body.
POST, en el body se indica que se quiere eliminar.
En Elasticsearch los documentos se manejan con los métodos POST, GET, PUT, DELETE
Hibernate es un ORM (Object Relational Mapping) o Framework.
xxxxxxxxxx271package com.unir.model.mysql;2
3import jakarta.persistence.*;4import lombok.AllArgsConstructor;5import lombok.Getter;6import lombok.NoArgsConstructor;7import lombok.Setter;8import java.util.Set;9
1011(name = "departments")1213141516public class Department {17
18 19 (name = "dept_no", columnDefinition = "CHAR(4)")20 private String deptNo;21
22 (name = "dept_name")23 private String deptName;24
25 (mappedBy = "deptNo", fetch = FetchType.EAGER)26 private Set<DeptEmployee> deptEmployees;27}
xxxxxxxxxx351package com.unir.model.mysql;2
3import lombok.AllArgsConstructor;4import lombok.Getter;5import lombok.NoArgsConstructor;6import lombok.Setter;7import java.io.Serializable;8import java.util.Objects;9
1011121314public class DeptEmployeeId implements Serializable {15
16 private Integer empNo;17 private String deptNo;18
19 20 public boolean equals(Object o) {21 if (this == o)22 return true;23 24 if (o == null || getClass() != o.getClass())25 return false;26 27 DeptEmployeeId that = (DeptEmployeeId) o;28 return Objects.equals(empNo, that.empNo) && Objects.equals(deptNo, that.deptNo);29 }30
31 32 public int hashCode() {33 return Objects.hash(empNo, deptNo);34 }35}
Los decoradores (o anotaciones) que ves en las clases de Java, especialmente en el contexto de Hibernate y JPA (Java Persistence API), juegan un papel crucial en el mapeo objeto-relacional (ORM). Vamos a explicar cada uno de ellos:
Department@Entity: Esta anotación indica que la clase es una entidad JPA.
Una entidad representa una tabla en una base de datos; cada instancia de la clase corresponderá a una fila en esa tabla.
@Table(name = "departments"): Especifica el nombre de la tabla en la base de datos que esta entidad representa. Aquí, la tabla se llama "departments".
@Id: Identifica la clave primaria de la entidad. En este caso, el campo deptNo es la clave primaria de la tabla departments.
@Column: Se utiliza para especificar detalles de la columna de una base de datos a la que se mapea un campo de entidad. Por ejemplo, @Column(name = "dept_no", columnDefinition = "CHAR(4)") indica que el campo deptNo se mapeará a la columna dept_no en la base de datos y que el tipo de columna es CHAR(4).
@OneToMany: Define una relación de uno a muchos. Aquí, indica que un departamento puede tener varios empleados. El atributo mappedBy señala que la entidad DeptEmployee es el dueño de la relación y el campo correspondiente en esa entidad es deptNo.
fetch = FetchType.EAGER indica que los datos relacionados se cargarán de inmediato.
@Getter, @Setter, @AllArgsConstructor, @NoArgsConstructor: Estas son anotaciones de Lombok, una biblioteca que ayuda a reducir el código repetitivo. Generan automáticamente métodos getters y setters para los campos de la clase, así como constructores con todos los argumentos y sin argumentos.
DeptEmployeeIdEsta clase no tiene anotaciones de JPA/Hibernate, pero es importante en el contexto de ORM. Es una clase de identificación que se utiliza para representar las claves compuestas. Las claves compuestas son claves primarias en una tabla de base de datos que están compuestas por más de una columna. Aquí, empNo y deptNo juntos forman una clave compuesta.
Los métodos equals y hashCode son sobreescritos para garantizar una correcta comparación de identidades y un correcto funcionamiento en colecciones de Java.
En resumen, estas anotaciones y clases facilitan la mapeo entre las clases Java y las tablas de bases de datos en aplicaciones que utilizan Hibernate y JPA, reduciendo la cantidad de código requerido para el manejo de datos y asegurando un correcto comportamiento ORM.
EAGER y LAZYEn Hibernate, EAGER y LAZY son dos modos de carga utilizados para definir cómo se recuperan los datos relacionados cuando se accede a una entidad.
EAGER: Hibernate recupera los datos relacionados al mismo tiempo que se recupera la entidad principal. Esto puede resultar en una recuperación excesiva de datos si la entidad principal tiene muchas relaciones y puede afectar negativamente al rendimiento de la aplicación.
LAZY: Hibernate no recupera los datos relacionados cuando se recupera la entidad principal.
La forma de configurar Hibernate es usando el fichero XML de configuración llamado hibernate.cfg.xml.
Otra forma de configurarlo es a través de anotaciones
entity manager?El Entity Manager en Hibernate es un componente clave de JPA, la cual Hibernate implementa. Se encarga de gestionar el ciclo de vida de las entidades, que son objetos Java que representan las filas de una tabla en una base de datos. El Entity Manager proporciona las funcionalidades necesarias para insertar, actualizar, eliminar y consultar entidades, facilitando el manejo de transacciones y el acceso a los datos de una manera más abstracta y orientada a objetos, sin necesidad de escribir consultas SQL explícitas.
JPA (Java Persistence API) es una especificación de Java para el mapeo objeto-relacional (ORM) que describe la gestión de bases de datos relacionales en aplicaciones usando Java.
Utiliza la libreria JDBC (Java Database Connectivity).